package com.isc.tcpCommunication03;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;

/**
 * 使用字符流
 * 1.编写一个服务器端和客户端
 * 2.服务器端在9999端口监听
 * 3.客户端连接到服务器端，发送"hello,server",并接收服务器端回发的"hello,client",再退出
 * 4.服务器端接收到客户端发送的信息，输出，并发送"hello,client",再退出
 */
public class Client {
    public static void main(String[] args) throws IOException {
        //客户端发送请求给服务器端
        Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
        System.out.println("发送连接请求...");

        //发送数据
        OutputStream outputStream = socket.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
        bw.write("hello,server");
        bw.newLine();//写入结束标志
        bw.flush();//使用字符流，需要手动刷新数据，否则数据不会写入
        System.out.println("发送信息成功...");

        //接收服务器端回发的数据
        InputStream inputStream = socket.getInputStream();
        //使用字符流读取数据
        BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
        String s = br.readLine();
        System.out.println("服务器端发送的信息是:" + s);
        System.out.println("接收成功~");

        //关闭资源
        br.close();
        bw.close();
        socket.close();
        System.out.println("客户端断开连接...");
    }
}
